﻿using SharpArch.Core.DomainModel;
using SharpArch.Core.PersistenceSupport;
using NHibernate.Validator.Constraints;
using SharpArch.Core;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;
using System.Collections.Generic;
using System;


namespace zeus.Core
{
    public class Cliente : Entity
    {
        public Cliente()
        {
            Usuarios = new List<Usuario>();
            Planes = new List<PlanCliente>();
            Unidades = new List<Unidad>();
        }

        [Required(ErrorMessage = "Ingrese  Nombre del cliente")]
        [DisplayName("Nombre Cliente")]
        public virtual string Nombre { get; set; }

        [Required(ErrorMessage = "Ingrese  Número de Documento")]
        [DisplayName("Numero Documento")]
        public virtual string NumeroDocumento { get; set; }
        
        [Required(ErrorMessage = "Ingrese  Compania ")]
        [DisplayName("Compañia")]
        public virtual string Compania { get; set; }

        [Required(ErrorMessage = "Ingrese  Idioma ")]
        [DisplayName("Idioma")]
        public virtual int CodigoIdioma { get; set; }

        [Required(ErrorMessage = "Ingrese  Compania ")]
        [DisplayName("Pais")]
        public virtual int CodigoPais { get; set; }

        [DisplayName("Fotografía")]
        public virtual string Imagen { get; set; }

        [Required(ErrorMessage = "Ingrese  Palabra de Emergencia ")] 
        [DisplayName("Palabra de Emergencia")]
        public virtual string PalabraEmergencia { get; set; }

        [Required(ErrorMessage = "Ingrese  Tipo de Documento ")] 
        [DisplayName("Tipo de Documento")]
        public virtual string TipoDocumento { get; set; }
                      
        public virtual IList<Usuario> Usuarios { get; set; }

        public virtual IList<PlanCliente> Planes { get; set; }

        public virtual IList<Unidad> Unidades { get; set; }              
     
    }
}
